#!/bin/zsh

BASE_DIR="$(cd "$(dirname "$0")/../../.." && pwd)"
cd "$BASE_DIR"
LOG_FILE="$BASE_DIR/control_panel_launch.log"
PYTHON_BIN="$BASE_DIR/.venv/bin/python"
PANEL_SCRIPT="$BASE_DIR/app/control_panel.py"
APPLE_SILICON="$(/usr/sbin/sysctl -n hw.optional.arm64 2>/dev/null || echo 0)"

if [ ! -x "$PYTHON_BIN" ]; then
  osascript -e 'display dialog "Окружение не найдено. Сначала запусти INSTALL.command" buttons {"OK"} default button "OK"' >/dev/null 2>&1
  exit 1
fi

{
  echo "----- $(date '+%Y-%m-%d %H:%M:%S') launching Visa Monitor Panel -----"
  echo "BASE_DIR=$BASE_DIR"
  echo "MAC_ARCH=$(uname -m)"
  echo "APPLE_SILICON=$APPLE_SILICON"
  echo "PYTHON=$PYTHON_BIN"
} >> "$LOG_FILE" 2>&1

if [ "$APPLE_SILICON" = "1" ]; then
  /usr/bin/arch -arm64 "$PYTHON_BIN" -c 'import platform, sys; print("PYTHON_ARCH=" + platform.machine()); print("PYTHON_EXE=" + sys.executable)' >> "$LOG_FILE" 2>&1
  nohup /usr/bin/arch -arm64 "$PYTHON_BIN" "$PANEL_SCRIPT" </dev/null >> "$LOG_FILE" 2>&1 &
else
  "$PYTHON_BIN" -c 'import platform, sys; print("PYTHON_ARCH=" + platform.machine()); print("PYTHON_EXE=" + sys.executable)' >> "$LOG_FILE" 2>&1
  nohup "$PYTHON_BIN" "$PANEL_SCRIPT" </dev/null >> "$LOG_FILE" 2>&1 &
fi

disown

exit 0
